home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 October / Macformat17.cdr / Shareware City / Developers / shutdown-fx-20-c / sfx control app ƒ / Shell ƒ / graphics.h < prev    next >
Text File  |  1994-07-11  |  6KB  |  131 lines

  1. /**********************************************************************\
  2.  
  3. File:        graphics.h
  4.  
  5. Purpose:    This is the header file for graphics.c
  6.  
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or
  10. (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program in a file named "GNU General Public License".
  19. If not, write to the Free Software Foundation, 675 Mass Ave,
  20. Cambridge, MA 02139, USA.
  21.  
  22. \**********************************************************************/
  23.  
  24. #pragma once
  25.  
  26. #include "QDOffscreen.h"
  27.  
  28. #define MAX_TE_HANDLES 1
  29.  
  30. typedef struct
  31. {
  32.     WindowPtr            theWindowPtr;            /* window ptr of window */
  33.     short                windowIndex;            /* index of window in program's window list */
  34.     short                windowWidth;            /* width of window content, in pixels */
  35.     short                windowHeight;            /* height of window content, in pixels */
  36.     short                windowType;                /* type of window (see IM Essentials, 4-80) */
  37.     short                windowDepth;            /* current pixel depth of window */
  38.     short                maxDepth;                /* maximum pixel depth of window */
  39.     Boolean                hasCloseBox;            /* window has a close box */
  40.     Boolean                offscreenNeedsUpdate;    /* TRUE if offscreen bitmap needs redrawing */
  41.     Boolean                isColor;                /* TRUE if color, FALSE if grayscale */
  42.     Point                initialTopLeft;            /* initial window bounds when opened */
  43.     Rect                windowBounds;            /* on screen rectangle of window content */
  44.     TEHandle            hTE[MAX_TE_HANDLES];    /* array of textedit handles */
  45.     Str31                windowTitle;            /* pascal string, title of window */
  46. } WindowDataRec, *WindowDataPtr, **WindowDataHandle;
  47.  
  48. typedef short (*dispatchProcPtr)(WindowDataHandle theData, short theMessage, unsigned long misc);
  49.  
  50. typedef struct                                    /* exactly the same as WindowDataRec */
  51. {                                                /* + dispatchProc at end */
  52.     WindowPtr            theWindowPtr;
  53.     short                windowIndex;
  54.     short                windowWidth;
  55.     short                windowHeight;
  56.     short                windowType;
  57.     short                windowDepth;
  58.     short                maxDepth;
  59.     Boolean                hasCloseBox;
  60.     Boolean                offscreenNeedsUpdate;
  61.     Boolean                isColor;
  62.     Point                initialTopLeft;
  63.     Rect                windowBounds;
  64.     TEHandle            hTE[MAX_TE_HANDLES];
  65.     Str31                windowTitle;
  66.     dispatchProcPtr        dispatchProc;            /* called with message of windowish event */
  67. } ExtendedWindowDataRec, *ExtendedWindowDataPtr, **ExtendedWindowDataHandle;
  68.  
  69. enum                    /* messages passed to window's dispatch procedure */
  70. {
  71.     kNull=0,            /* on null event when window is active, frgrnd/bkgrnd */
  72.     kStartup,            /* on program startup */
  73.     kShutdown,            /* on program shutdown */
  74.     kInitialize,        /* just before window is created & shown */
  75.     kOpen,                /* just after window is created & shown */
  76.     kUpdate,            /* during window update -- draw contents to current grafport */
  77.     kClose,                /* just before window is closed -- this can cancel close */
  78.     kDispose,            /* just after window is closed/disposed */
  79.     kActivate,            /* on window activate event */
  80.     kDeactivate,        /* on window deactivate event */
  81.     kSuspend,            /* on program suspension (switched into background) */
  82.     kResume,            /* on program resuming (switching into foreground) */
  83.     kKeydown,            /* on keydown event when window is active & in foreground */
  84.     kMousedown,            /* on mousedown event in window content when active & in frgrnd */
  85.     kUndo,                /* specific to window */
  86.     kCut,
  87.     kCopy,
  88.     kPaste,
  89.     kClear,
  90.     kSelectAll,
  91.     kChangeDepth,        /* offscreen bitmap just created or pixel depth changed */
  92.     kCopybits            /* actual copybits to update onscreen window from offscreen */
  93. };
  94.  
  95. enum                    /* return codes from window dispatch procedure */
  96. {
  97.     kSuccess=0,            /* message handled, no further processing please */
  98.     kFailure,            /* message not handled, use default action if any */
  99.     kCancel                /* message refused, cancel action (only good with kClose) */
  100. };
  101.  
  102. /***************************************************************************************/
  103.  
  104. Boolean InitTheGraphics(void);
  105. void ShutDownTheGraphics(void);
  106. void OpenTheIndWindow(short index);
  107. void OpenTheWindow(ExtendedWindowDataHandle theData);
  108. void GetMainScreenBounds(void);
  109. short GetWindowDepth(WindowDataHandle theData);
  110. short GetBiggestDeviceDepth(WindowDataHandle theData);
  111. Boolean WindowIsColor(WindowDataHandle theData);
  112. void ForceUpdateTheIndWindow(short index);
  113. void UpdateTheWindow(ExtendedWindowDataHandle theData);
  114. Boolean CloseTheWindow(ExtendedWindowDataHandle theData);
  115. Boolean CloseTheIndWindow(short index);
  116. PicHandle DrawThePicture(PicHandle thePict, short whichPict, short x, short y);
  117. PicHandle ReleaseThePict(PicHandle thePict);
  118. Boolean SetPortToOffscreen(WindowDataHandle theData);
  119. void RestorePortToScreen(WindowDataHandle theData);
  120. GrafPtr GetOffscreenGrafPtr(WindowDataHandle theData);
  121. GrafPtr GetIndOffscreenGrafPtr(short index);
  122. GrafPtr GetWindowGrafPtr(WindowDataHandle theData);
  123. GrafPtr GetIndWindowGrafPtr(short index);
  124. WindowDataHandle GetIndWindowDataHandle(short index);
  125. void SetIndDispatchProc(short index, ProcPtr theProc);
  126. short CallIndDispatchProc(short index, short theMessage, unsigned long misc);
  127. short CallDispatchProc(ExtendedWindowDataHandle theData, short theMessage,
  128.     unsigned long misc);
  129. void SetIndWindowTitle(short index, Str255 theTitle);
  130. void KillOffscreen(short index);
  131.